<?php 
App::uses('AppController', 'Controller');
App::uses('CakeEmail','Network/Email');

class MemberController extends AppController {
	public $user = "";
	
	public function manage() {
		$this -> layout = 'layoutMember';
		$this->set('title_for_layout', "Quản lý user");
		
		$this->user = parent::checkMemberLogin();
		$this->set("user",$this->user);
		parent::leftMember();

		$this->loadModel('Shop');
		$this->loadModel('Post');
		$this->loadModel('User');
		//$user = $this->user;
		$userId = $this->user['id'];
		$user = $this->User->findById($userId);
		$username = $user['User']['username'];
		$shop = $this->Shop->findShopByCreatedId($userId);
		$this->set('shop',$shop);
		$this->set('username',$username);

		$posts = $this->Post->findByUserId($userId);
		$this->set('posts',$posts);
		
	}
	/**
	 * @author: quoc tran
	 * login dành cho nhóm member- người dùng
	 */
	public function login(){
		 	$this -> loadModel('User');
			if ($this -> request -> is('post')) {
			
			$groupId =  $this ->User->getGroupId($this -> request->data['User']['email']);
			if($groupId == -1){
				echo json_encode(array('success'=>'2', 'msg'=>"Email không hợp lệ"));
				exit;
			}
			if ($groupId != 3){
				echo json_encode(array('success'=>'2', 'msg'=>"Không thể đăng nhập với email này"));
				exit;
			}
			if ($this -> Auth -> login()) {
				$this -> Session -> write('Auth.User.lastlogin', date('m-d-Y H:i:s'));
				echo json_encode(array('success'=>'1', 'msg'=>"Đăng nhập thành công"));
				exit;
			} else {
				echo json_encode(array('success'=>'2', 'msg'=>"Vui lòng kiểm lại email hoặc mật khẩu"));
				exit;
			}
		}
		echo json_encode(array('success'=>'2', 'msg'=>"Không thể đăng nhập"));
		exit;
	}
	/**
	 * @author: quoctran
	 * logout dành cho nhóm member- người dùng
	 */
	public function logout(){
		$this -> loadModel('User');
		$u = $this -> Session -> read('Auth.User');
		$u['updated_at'] = date("Y-m-d H:i:s");
		$this -> User -> saveField("lastlogin", $u['lastlogin']);
		return $this->redirect($this->Auth->logout());
	}

	/**
	* function forgot pw user
	* @author ThanhTran
	* @since 2014-12-15
	* @return 
	*/
	public function forgot($email = null){
		$this->layout='layoutNoMenuLeft';
		$this->set('title_for_layout','Quên mật khẩu');
		$this->loadModel('User');
		if($this->request->is('Post')){
			$user=$this->User->findByEmail($this->request->data['email']);
			$captcha = $this -> request ->data['captcha'];
			$captcha_ss = $this->Session->read('captcha_code');
			if($captcha == $captcha_ss){
				if(!empty($user)){
				$code = $this->Code->generate_code();
				$link_confirm = 'http://www.maytot.vn/xac-nhan/'.$code;
				$this->User->id = $user['User']['id'];
				$this->User->saveField('code',$code);
				//gởi email link xác nhận
				$email = new CakeEmail();
				$email->config('default')
					->to(array($user['User']['email']=>$user['User']['username']))
					->subject('Xác nhận thay đổi mật khẩu')
					->send('Bạn vừa yêu cầu thay đổi mật khẩu, vui lòng nhấn vào link để xác nhận: '.$link_confirm);

				$this->Session->setFlash('Vui lòng kiểm tra email (inbox hoặc spam) để xác nhận yêu cầu!','default',array('class'=>'alert alert-info'),'forgot');
				}else{
					$this->Session->setFlash('Email không tồn tại','default',array('class'=>'alert alert-info'),'forgot');
				}
			}else{
				$this->Session->setFlash('Mã xác nhận không chính xác','default',array('class'=>'alert alert-info'),'forgot');
			}
			
		}
	}

	/**
	* function confirm forgot pw user
	* @author ThanhTran
	* @since 2014-12-15
	* @return 
	*/
	
	public function confirm($code = null){
		$confirm = false;
		if(!empty($code)){
			$this->loadModel('User');
			$this->layout='layoutNoMenuLeft';
			$user = $this->User->findByCode($code);
			if(!empty($user)){
				$confirm = true;
				if($this->request->is('post')){
					$this->User->set($this->request->data);
					if($this->User->validates()){
						if($this->update_password($user['User']['id'])){
							$this->User->updateAll(array('User.code'=>null),array('User.id'=>$user['User']['id']));							
							$this->redirect('/doi-mat-khau/thanh-cong');
						}
					}else{
						$this->set('errors',$this->User->validationErrors);
					}
				}
			}
		}
		$this->set('confirm',$confirm);
		$this->set('title_for_layout','Yêu cầu đổi mật khẩu mới');
	}

	/**
	 * update_password - cập nhật mật khẩu
	 */
	private function update_password($id){
		$this->User->id = $id;
		//if($this->User->saveField('password',$this->Auth->password($this->request->data['User']['password']))){
		if($this->User->saveField('password',$this->request->data['User']['password'])){
			return true;
			
		}else{
			return false;
		}
	}

	public function success(){
		$this->layout='layoutNoMenuLeft';
		$this->Session->setFlash('Chúc mừng bạn! Reset password thành công!','default',array('class'=>'alert alert-info'),'success');
		$this->set('success','success');
	}

	/**
	* function update user
	* @author ThanhTran
	* @since 2014-12-15
	* @return 
	*/
	public function updateUser(){
		$this -> layout = 'layoutMember';
		$this->loadModel('User');
		$this->set('title_for_layout','Chỉnh sửa thông tin user');
		
		$this->user = parent::checkMemberLogin();
		$this->set("user",$this->user);
		parent::leftMember();
		$userId = $this->user['id'];
		
		$userId = $this->user['id'];
		if ($this->request->is('put')||$this->request->is('post')) {
			$this->User->set($this->request->data);
			if ($this->User->validates()) {
				$data = array(
					'username' => $this->request->data['User']['username'],
					'email' => $this->request->data['User']['email']
					);
				$this->User->id = $userId;
				if($this->User->save($data)){
					$this->Session->setFlash('Đã lưu thành công!', 'default', array('class'=>'alert alert-info'));
				}else{
					$this->Session->setFlash('Có lỗi xảy ra, vui lòng thử lại!', 'default', array('class'=>'alert alert-danger'));
				}
			}else{
				$this->set('errors',$this->User->validationErrors);
			}
		}else{
			$this->request->data = $this->User->findById($this->user['id']);
		}
		
	}

	/**
	* function change pw user
	* @author ThanhTran
	* @since 2014-12-15
	* @return 
	*/
	public function changePass(){
		$this -> layout = 'layoutMember';
		$this->loadModel('User');
		
		$this->user = parent::checkMemberLogin();
		$this->set("user",$this->user);
		parent::leftMember();
		$user = $this->user;
		if ($this->request->is('post')) {
			$data = $this->request->data;
			$data['User']['id'] = $user['id'];
			$this->User->set($data);
			$this->User->set($this->request->data);
			if ($this->User->validates()){
				if($this->update_password($user['id'])){
					$this->Session->setFlash('Đã lưu thành công!', 'default', array('class'=>'alert alert-info'));

				}else{
					$this->Session->setFlash('Có lỗi xảy ra, vui lòng thử lại!', 'default', array('class'=>'alert alert-danger'));
				}
				
			}else{
				$this->set('errors',$this->User->validationErrors);
			}

		}

		$this->set('title_for_layout','Đổi mật khẩu');
		$this->set('Flat','changepass');
	}

	/**
	* function manage posting user
	* @author ThanhTran
	* @since 2014-12-16
	* @return 
	*/
	public function managePost(){
		$this -> layout = 'layoutMember';
		$this->loadModel('User');
		$this->loadModel('Post');
		
		/*$this->loadModel('Shop');
		$this->loadModel('ShopCategory');
		$this->set('title_for_layout', "Quản lý tin đăng");		
		if (!$this->Auth->loggedIn()) {
			$this->redirect("/");
		}

		$user = $this->Session->read('Auth.User');
		$userId = $user['id'];
		if($user['group_id'] != 3){
			$this->redirect("/");
		}
		//shop 
		$shop = $this->Shop->findShopByCreatedId($userId);
		
		if(empty($shop)){
			$this->set('shopId', 0);
			$this->set('showShopCatEdit', -1);
		}else{
			$this->set('shopId', $shop['Shop']['id']);
			$shopCat = $this->ShopCategory->findShopCategoryByShopId($shop['Shop']['id']);
			if(empty($shopCat)){
				$this->set('showShopCatEdit', 0);
			}else{
				$this->set('showShopCatEdit', 1);
			}
		}
		$this->set('user', $user);*/
		$this->user = parent::checkMemberLogin();
		$user = $this->user;
		$userId = $user['id'];
		$this->set("user",$this->user);
		parent::leftMember();
		
		$posts = $this->Post->findByUserId($userId);
		$this->set('posts',$posts);
		$this->set('title_for_layout','Quản lý tin đăng');
	}

	
	/**
	 * up top tin đăng user
	 */
 	public function uptop($id = null){
 		if($this->request->is('post')){
 			$this->loadModel('Post');
 			$this->Post->id = $id;
 			if($this->Post->exists()){
 				$post = $this->Post->findById($id);
 				date_default_timezone_set('Asia/Ho_Chi_Minh');
 				$date = date('Y/m/d H:i:s', time());
 				$this->Post->saveField('updated_at',$date);
 			}
 		}
 		$this->redirect($this->referer());
 	}

 	/**
	 * up top tin đăng user
	 * Thanh Tran
	 */
 	public function editPost($id = null){
 		$this -> layout = 'layoutMember';
		$this->loadModel('User');
		
		$this->user = parent::checkMemberLogin();
		$this->set("user",$this->user);
		parent::leftMember();
		$user = $this->user;
 	}

 	/**
	 * xóa tin đăng của user
	 */
 	public function deletepost($id = null){
 		if($this->request->is('post')){
 			$this->loadModel('Post');
 			$this->loadModel('Image');
 			$this->Post->id = $id;
 			$image=$this->Image->findAllByPostId($id);
 			if($this->Post->exists()){
 				if($this->Post->delete($id)){
 					foreach ($image as $item) {
 						$this->Image->delete($item['Image']['id']);
 					}
 					
 					$this->Session->setFlash('Đã xóa thành công!', 'default', array('class'=>'alert alert-info'));
 				}else{
 					$this->Session->setFlash('Chưa xóa được, xin thử lại!', 'default', array('class'=>'alert alert-info'));
 				}
 			}
 		}
 		$this->redirect($this->referer());
 	}
}
?>